const WXAPI = require('apifm-wxapi')
const { ensureAbsoluteUrl } = require('../../utils/url.js')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    page: 1, // 读取第几页数据，便于实现下滑分页
    articleList: [] // 文章列表
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad (options) {
    /**
     * 接口名称: cmsCategoryDetail
     * 接口作用: 获取指定分类的详细信息
     * 请求参数: categoryId (number) - 分类ID
     * 返回格式: {
     *   code: 0,                    // 状态码，0表示成功
     *   data: {
     *     id: 1,                   // 分类ID
     *     name: "分类名称",       // 分类名称
     *     description: "分类描述", // 分类描述
     *     pic: "分类图片URL"     // 分类图片
     *   }
     * }
     */
    const categoryInfo = await WXAPI.cmsCategoryDetail(options.pid);
    if (categoryInfo.code != 0) {
      wx.showModal({
        title: '提示',
        content: '当前分类不存在',
        showCancel: false,
        confirmText: '返回',
        success(res) {
          wx.navigateBack()
        }
      })
      return;
    }
    // 设置小程序名称
    wx.setNavigationBarTitle({
      title: wx.getStorageSync('mallName')
    })    
    const categoryData = categoryInfo.data || {}
    if (categoryData.icon) {
      categoryData.icon = ensureAbsoluteUrl(categoryData.icon)
    }
    if (categoryData.pic) {
      categoryData.pic = ensureAbsoluteUrl(categoryData.pic)
    }
    this.setData({
      categoryInfo: categoryData
    });
    // 读取分类下的文章
    this.fetchArticles(options.pid);
  },

  async fetchArticles (pid) {
    /**
     * 接口名称: cmsArticles
     * 接口作用: 获取指定分类下的文章列表
     * 请求参数: {
     *   page: number,        // 页码，用于分页
     *   categoryId: number   // 分类ID，筛选指定分类的文章
     * }
     * 返回格式: {
     *   code: 0,            // 状态码，0表示成功
     *   data: [             // 文章列表数组
     *     {
     *       id: 19988,             // 文章ID
     *       title: "文章标题",      // 文章标题
     *       pic: "封面图片URL",     // 封面图片
     *       content: "文章内容",    // 文章内容
     *       categoryId: 1,         // 分类ID
     *       createTime: "创建时间", // 创建时间
     *       viewCount: 100         // 浏览次数
     *     }
     *   ]
     * }
     */
    const response = await WXAPI.cmsArticles({
      page: this.data.page,
      categoryId: pid
    });
    if (response.code == 0) {
      const normalizedArticles = (response.data || []).map(entity => {
        const item = Object.assign({}, entity)
        if (item.pic) {
          item.pic = ensureAbsoluteUrl(item.pic)
        }
        return item
      })
      this.setData({
        articleList: this.data.articleList.concat(normalizedArticles)
      });
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
  
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
  
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
  
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
  
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
  
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
  
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
  
  }
})
